public class TestDemo2 {
    public static void func() throws CloneNotSupportedException{
        int a=10;
        if(a==10)
        {
            throw new CloneNotSupportedException("haha!!");
        }
    }
    public static void main(String[]args){
       /* try {//交给自己处理
            func();
        } catch (CloneNotSupportedException e) {
            throw new RuntimeException(e);
        }
        */
        System.out.println("before ");
        try//可以通过catch捕获多个异常
        {
            System.out.println(10/0);
//            System.out.println("aaaaaa");
        }
//        catch(Exception e)//1.不能直接用父类接收所有异常，此时异常不精准
//        2.可以用来殿后

//        {
//
//        }
        catch(ArithmeticException | NullPointerException e)//比较少用，捕获多个异常
        //catch的参数是你要捕获的异常，处理逻辑
        {
            //底层代码是使用其他工具来打印的
            e.printStackTrace();
            System.out.println("我来处理AirthmeticException异常");
        }
//        catch(NullPointerException e)
//        {
//            System.out.println("******NUllPointeException异常*****");
//        }


        System.out.println("after");
        //一旦交给jvm，程序会异常终止
        //


    }
}
